$(function () {
    // 页面加载完成后加载树形结构
    loadModuleInfo(); 
});

// 定义树形结构对象
var zTreeObj;

/**
 * 加载资源树形列表
 */
function loadModuleInfo() {
    // zTree的参数配置，深入使用请参考 API 文档（setting 配置详解）
    var setting = {
        // 使用复选框
        check: {
            enable: true
        },
        // 使用简单json格式
        data: {
            simpleData: {
                enable: true
            }
        },
        // 绑定函数
        callback: {
            // 当复选框被选中或取消选中时触发的函数
            onCheck: zTreeOnCheck
        }
    };

    // 通过Ajax查询资源列表
    $.ajax({
        type:"get",
        // 查询所有的资源列表时，传递角色id，查询当前对应的已经授权的资源
        url:ctx+"/module/queryAllModules?roleId="+$("input[name='roleId']").val(),
        dataType:"json",
        success:function (data) {
            // data:查询到的资源列表

            // 加载zTree树插件
            zTreeObj = $.fn.zTree.init($("#test1"), setting, data);
        }
    })
}

// 当复选框被选中或取消选中时触发的函数
function zTreeOnCheck(event, treeId, treeNode) {
    //alert(treeNode.tId + ", " + treeNode.name + "," + treeNode.checked);

    // 获取所有被勾选的节点集合
    var nodes= zTreeObj.getCheckedNodes(true);

    // 获取所有的资源id
    if(nodes.length > 0){
        var mids="mids=";
        for(var i=0;i<nodes.length;i++){
            if(i<nodes.length-1){
                mids=mids+nodes[i].id+"&mids=";
            }else{
                mids=mids+nodes[i].id;
            }
        }
    }

    // 获取需要授权的角色id（隐藏域）
    var roleId = $("input[name='roleId']").val();

    $.ajax({
        type:"post",
        url:ctx+"/role/addGrant",
        data:mids+"&roleId="+ roleId,
        dataType:"json",
        success:function (data) {
            console.log(data);
        }
    })

}